// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import BaseClass from '@api/broadcast/model/AddressBookDto'
import API from './API'
import API_TASK from './API_TASK'

const WORD = '终端'

// ============================== 导出状态集 ============================== //

export default {
  // —————————————————————————————— 常量状态 —————————————————————————————— //

  /**
   * 接口
   */
  API: {
    MENU: ['__详情__', WORD], // 菜单
    ...API,
    ...API_TASK,
  },

  /**
   * 映射
   */
  MAP: {
    WORD, // 词语
    EDIT: '呼叫', // 修改

    tipEdit: '选择话筒', // 修改提示
    tipPass: '开始对讲', // 通过提示
    tipRej: '关闭对讲', // 拒绝提示
    tipSubmit: '设置音量', // 提交提示

    // 必须的字段，有值才会显示弹窗
    REQUIRED_KEY: 'deviceId',

    // 弹窗属性
    MODEL_PROPS: {
      small: true,
      title: `${WORD}详情`,
      bgClose: true,
    },

    /**
     * 音量
     */
    VOLUME: {
      0: '0',
      25: '25',
      50: '50',
      75: '75',
      100: '100',
    },

    coreSecond: 0, // 开始对讲或对讲结束的内核秒数
  },

  /**
   * 字典
   */
  DICT: {
    /**
     * 状态
     */
    STATUS: [
      [1, '离线', '', '灰'],
      [2, '在线', '', '绿'],
      [3, '占用', '', '红'],
    ],

    /**
     * 对讲状态
     */
    SPEAK_STATUS: [
      [1, '对讲中', '', '绿'],
      [2, '未对讲', '', '灰'],
    ],

    /**
     * 任务类型
     */
    TASK_TYPE: [
      [1, '空闲'],
      [2, '定时打铃'],
      [3, '定时节目'],
      [4, '定时采播'],
      [5, '实时采播'],
      [6, `消防${CORE.MAP.ALARM}`],
    ],
  },

  /**
   * 首要开关
   *
   * 1. 初始化完成时调用
   * 2. 提交后刷新时调用
   */
  MAIN_START: 'startOne', // 'startInfo' 或 'startList' 或 'startOne' 或 ''

  /**
   * 初始配置
   */
  INIT_CONFIG: {
    /**
     * 提交后是否保持弹窗可见
     *
     * true  保持弹窗可见
     * false 提交后关闭弹窗
     */
    SUBMIT_KEEP_VISIBLE: true,
  },

  /**
   * 初始单项
   *
   * 1. 初始存在，才能响应
   * 2. setOne() 合并时使用
   * 3. openAdd() 新增时使用
   */
  INIT_ONE: CORE.initObj(BaseClass, {
    deviceDto: {},
  }),
}
